With the widespread adoption of the Internet and the improvement in integrated development environments, the number of software application developers and, correspondingly, software applications has increased substantially. End users may select from the various software applications that can be locally or remotely executed. To select from the various software applications, the user typically submits a name of a software application or selects from a menu of available software applications. However, with the limits in screen size, network bandwidth, processing power, and time, the number of software applications that may be concurrently presented to an end user is necessarily limited.
Various methodologies exist to recommend and present software applications to end users. Each methodology has an underlying assumption about the end user's selection process. For example, recommendations based on other end users that select a same software application as the target end user makes the assumption that the target end user has similar interests to the other end users simply by selecting the same prior software application.